package com.tansun.easycare.modules.sys.web;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import com.tansun.easycare.core.web.BaseController;

@Controller
@RequestMapping({"/sys/role"})
public class RoleController extends BaseController
{

//  @Autowired
//  private SystemService systemService;
//
//  @Autowired
//  private OfficeService officeService;
//
//  @ModelAttribute("role")
//  public Role get(@RequestParam(required=false) String id)
//  {
//    if (StringUtils.isNotBlank(id)) {
//      return this.systemService.getRole(id);
//    }
//    return new Role();
//  }
//
//  @RequiresPermissions({"sys:role:view"})
//  @RequestMapping({"list", ""})
//  public String list(Role role, Model model) {
//    List list = this.systemService.findAllRole();
//    model.addAttribute("list", list);
//    return "modules/sys/roleList";
//  }
//  @RequiresPermissions({"sys:role:view"})
//  @RequestMapping({"form"})
//  public String form(Role role, Model model) {
//    if (role.getOffice() == null) {
//      role.setOffice(UserUtils.getUser().getOffice());
//    }
//    model.addAttribute("role", role);
//    model.addAttribute("menuList", this.systemService.findAllMenu());
//    model.addAttribute("officeList", this.officeService.findAll());
//    return "modules/sys/roleForm";
//  }
//  @RequiresPermissions({"sys:role:edit"})
//  @RequestMapping({"save"})
//  public String save(Role role, Model model, RedirectAttributes redirectAttributes) {
//    if ((!UserUtils.getUser().isAdmin()) && (role.getSysData().equals("1"))) {
//      addMessage(redirectAttributes, new String[] { "越权操作，只有超级管理员才能修改此数据！" });
//      return new StringBuilder().append("redirect:").append(this.adminPath).append("/sys/role/?repage").toString();
//    }
//    if (Global.isDemoMode().booleanValue()) {
//      addMessage(redirectAttributes, new String[] { "演示模式，不允许操作！" });
//      return new StringBuilder().append("redirect:").append(this.adminPath).append("/sys/role/?repage").toString();
//    }
//    if (!beanValidator(model, role, new Class[0])) {
//      return form(role, model);
//    }
//    if (!"true".equals(checkName(role.getOldName(), role.getName()))) {
//      addMessage(model, new String[] { new StringBuilder().append("保存角色'").append(role.getName()).append("'失败, 角色名已存在").toString() });
//      return form(role, model);
//    }
//    if (!"true".equals(checkEnname(role.getOldEnname(), role.getEnname()))) {
//      addMessage(model, new String[] { new StringBuilder().append("保存角色'").append(role.getName()).append("'失败, 英文名已存在").toString() });
//      return form(role, model);
//    }
//    this.systemService.saveRole(role);
//    addMessage(redirectAttributes, new String[] { new StringBuilder().append("保存角色'").append(role.getName()).append("'成功").toString() });
//    return new StringBuilder().append("redirect:").append(this.adminPath).append("/sys/role/?repage").toString();
//  }
//  @RequiresPermissions({"sys:role:edit"})
//  @RequestMapping({"delete"})
//  public String delete(Role role, RedirectAttributes redirectAttributes) {
//    if ((!UserUtils.getUser().isAdmin()) && (role.getSysData().equals("1"))) {
//      addMessage(redirectAttributes, new String[] { "越权操作，只有超级管理员才能修改此数据！" });
//      return new StringBuilder().append("redirect:").append(this.adminPath).append("/sys/role/?repage").toString();
//    }
//    if (Global.isDemoMode().booleanValue()) {
//      addMessage(redirectAttributes, new String[] { "演示模式，不允许操作！" });
//      return new StringBuilder().append("redirect:").append(this.adminPath).append("/sys/role/?repage").toString();
//    }
//
//    this.systemService.deleteRole(role);
//    addMessage(redirectAttributes, new String[] { "删除角色成功" });
//
//    return new StringBuilder().append("redirect:").append(this.adminPath).append("/sys/role/?repage").toString();
//  }
//
//  @RequiresPermissions({"sys:role:edit"})
//  @RequestMapping({"assign"})
//  public String assign(Role role, Model model)
//  {
//    List userList = this.systemService.findUser(new User(new Role(role.getId())));
//    model.addAttribute("userList", userList);
//    return "modules/sys/roleAssign";
//  }
//
//  @RequiresPermissions({"sys:role:view"})
//  @RequestMapping({"usertorole"})
//  public String selectUserToRole(Role role, Model model)
//  {
//    List userList = this.systemService.findUser(new User(new Role(role.getId())));
//    model.addAttribute("role", role);
//    model.addAttribute("userList", userList);
//    model.addAttribute("selectIds", Collections3.extractToString(userList, "name", ","));
//    model.addAttribute("officeList", this.officeService.findAll());
//    return "modules/sys/selectUserToRole";
//  }
//
//  @RequiresPermissions({"sys:role:view"})
//  @ResponseBody
//  @RequestMapping({"users"})
//  public List<Map<String, Object>> users(String officeId, HttpServletResponse response)
//  {
//    List mapList = Lists.newArrayList();
//    User user = new User();
//    user.setOffice(new Office(officeId));
//    Page<User> page = this.systemService.findUser(new Page(1, -1), user);
//    for (User e : page.getList()) {
//      Map map = Maps.newHashMap();
//      map.put("id", e.getId());
//      map.put("pId", Integer.valueOf(0));
//      map.put("name", e.getName());
//      mapList.add(map);
//    }
//    return mapList;
//  }
//
//  @RequiresPermissions({"sys:role:edit"})
//  @RequestMapping({"outrole"})
//  public String outrole(String userId, String roleId, RedirectAttributes redirectAttributes)
//  {
//    if (Global.isDemoMode().booleanValue()) {
//      addMessage(redirectAttributes, new String[] { "演示模式，不允许操作！" });
//      return new StringBuilder().append("redirect:").append(this.adminPath).append("/sys/role/assign?id=").append(roleId).toString();
//    }
//    Role role = this.systemService.getRole(roleId);
//    User user = this.systemService.getUser(userId);
//    if (UserUtils.getUser().getId().equals(userId)) {
//      addMessage(redirectAttributes, new String[] { new StringBuilder().append("无法从角色【").append(role.getName()).append("】中移除用户【").append(user.getName()).append("】自己！").toString() });
//    }
//    else if (user.getRoleList().size() <= 1) {
//      addMessage(redirectAttributes, new String[] { new StringBuilder().append("用户【").append(user.getName()).append("】从角色【").append(role.getName()).append("】中移除失败！这已经是该用户的唯一角色，不能移除。").toString() });
//    } else {
//      Boolean flag = this.systemService.outUserInRole(role, user);
//      if (!flag.booleanValue())
//        addMessage(redirectAttributes, new String[] { new StringBuilder().append("用户【").append(user.getName()).append("】从角色【").append(role.getName()).append("】中移除失败！").toString() });
//      else {
//        addMessage(redirectAttributes, new String[] { new StringBuilder().append("用户【").append(user.getName()).append("】从角色【").append(role.getName()).append("】中移除成功！").toString() });
//      }
//    }
//
//    return new StringBuilder().append("redirect:").append(this.adminPath).append("/sys/role/assign?id=").append(role.getId()).toString();
//  }
//
//  @RequiresPermissions({"sys:role:edit"})
//  @RequestMapping({"assignrole"})
//  public String assignRole(Role role, String[] idsArr, RedirectAttributes redirectAttributes)
//  {
//    if (Global.isDemoMode().booleanValue()) {
//      addMessage(redirectAttributes, new String[] { "演示模式，不允许操作！" });
//      return new StringBuilder().append("redirect:").append(this.adminPath).append("/sys/role/assign?id=").append(role.getId()).toString();
//    }
//    StringBuilder msg = new StringBuilder();
//    int newNum = 0;
//    for (int i = 0; i < idsArr.length; i++) {
//      User user = this.systemService.assignUserToRole(role, this.systemService.getUser(idsArr[i]));
//      if (null != user) {
//        msg.append(new StringBuilder().append("<br/>新增用户【").append(user.getName()).append("】到角色【").append(role.getName()).append("】！").toString());
//        newNum++;
//      }
//    }
//    addMessage(redirectAttributes, new String[] { new StringBuilder().append("已成功分配 ").append(newNum).append(" 个用户").append(msg).toString() });
//    return new StringBuilder().append("redirect:").append(this.adminPath).append("/sys/role/assign?id=").append(role.getId()).toString();
//  }
//
//  @RequiresPermissions({"user"})
//  @ResponseBody
//  @RequestMapping({"checkName"})
//  public String checkName(String oldName, String name)
//  {
//    if ((name != null) && (name.equals(oldName)))
//      return "true";
//    if ((name != null) && (this.systemService.getRoleByName(name) == null)) {
//      return "true";
//    }
//    return "false";
//  }
//
//  @RequiresPermissions({"user"})
//  @ResponseBody
//  @RequestMapping({"checkEnname"})
//  public String checkEnname(String oldEnname, String enname)
//  {
//    if ((enname != null) && (enname.equals(oldEnname)))
//      return "true";
//    if ((enname != null) && (this.systemService.getRoleByEnname(enname) == null)) {
//      return "true";
//    }
//    return "false";
//  }
}